.. _cemCfgSeqMode_Get: cemCfgSeqMode_Get ================================ -------------------------------- SYNOPSYS ````````````` .. code-block:: none VT_I4 cemCfgSeqMode_Get ([out] VT_PI4 SeqMode ) DESCRIPTION ````````````` - cemCfgSeqMode_Get() 함수는 설정되어 있는 시퀀스 모드를 반환합니다. PARAMETER ````````````` ▶ SeqMode : 현재 이송이 진행되고 있는 축에 새로운 이송 명령이 하달되었을 때 이의 처리를 어떻게 할 것인지에 대한 시퀀스(Sequence) 모드를 설정 혹은 반환합니다. 이 값의 의미는 다음과 같습니다. .. csv-table:: :widths: 10 90 :header-rows: 1 :stub-columns: 0 Value, Meaning "| 0 (cemSEQM_SKIP_RUN)[Default] ", " | 현재 이송이 진행되고 있는 축에 새로운 이송 명령이 하달되면 -5170 | (cemERR_MOT_SEQ_SKIPPED) 에러 값과 함께 곧바로 반환됩니다. 다양한 에러 | 코드의 확인 본 매뉴얼의 부록 편에 명시되어 있습니다. " "| 1 (cemSEQM_WAIT_RUN) ", " | 현재 이송이 진행되고 있는 축에 새로운 이송 명령이 하달되면 이송 함수 내부에서 | 루프를 돌면서 이전 이송이 완료되기를 기다리다가 이전 이송이 완료되면 현재 | 하달된 이송 명령을 수행합니다. " RETURN VALUE ````````````` .. csv-table:: :widths: 10 90 :header-rows: 1 :stub-columns: 0 Value, Meaning 음수, 수행 실패 0(ERR_NONE), 수행 성공 REFERENCE ````````````` .. warning:: 시퀀스(Sequence) 모드가 ccemSEQM_SKIP_RUN[Default]으로 설정된 경우에 이전 이송 명령이 아직 끝나지 않은 상태에서 새로운 이송 명령이 하달되면 에러 처리되고 해당 이송 명령은 실행되지 않습니다. 따라서 이 모드에서 이송 명령을 내릴 때 사용자는 이전의 이송 명령이 완료되었음을 확인하는 것이 바람직합니다. EXAMPLE ``````````````` .. code-block:: c++ :linenos: :emphasize-lines: 5 C/C++ #include “ceSDK.h” #include “ceSDKDef.h” void OnGetSeqMode () { long nSeqMode; // 시퀀스 모드 정보. // 설정되어있는 시퀀스 모드를 확인 후, cemSEQM_SKIP_RUN 모드로 설정합니다. if ( cemCfgSeqMode_Get ( &nSeqMode ) == ceERR_NONE ) { if ( nSeqMode != cemSEQM_SKIP_RUN ) { cemCfgSeqMode_Get ( cemSEQM_SKIP_RUN ) } } } void OnMove () { SxVMoveStart ( cemX1 ); // 속도 이송 명령 수행 if ( SxMoveStart ( cemX1, 100000 ) != ceERR_NONE ) { // -5170 에러 코드 반환 // 시퀀스 모드가 cemSEQM_SKIP_RUN 모드로 설정되어 있으므로 // 이송 명령이 완료되지 않은 상태에서 다른 이송 명령은 실행되지 않습니다. } } .. code-block:: c++ :linenos: Visual Basic Private Sub OnGetSeqMode () Dim nSeqMode As Long ‘ 시퀀스 모드 정보. ‘ 설정되어있는 시퀀스 모드를 확인 후, cemSEQM_SKIP_RUN 모드로 설정합니다. If cemCfgSeqMode_Get ( nSeqMode ) = ceERR_NONE Then If nSeqMode <> cemSEQM_SKIP_RUN Then Call cemCfgSeqMode_Get ( cemSEQM_SKIP_RUN ) End If End If End Sub Private Sub OnMove () Call SxVMoveStart ( cemX1 ) ‘ 속도 이송 명령 수행 If SxMoveStart ( cemX1, 100000 ) <> ceERR_NONE Then ‘ -5170 에러 코드 반환 ‘ 시퀀스 모드가 cemSEQM_SKIP_RUN 모드로 설정되어 있으므로 ‘ 이송 명령이 완료되지 않은 상태에서 다른 이송 명령은 실행되지 않습니다. End If End Sub .. code-block:: c++ :linenos: Delphi procedure OnGetSeqMode (); var nSeqMode : LongInt; // 시퀀스 모드 정보. begin // 설정되어있는 시퀀스 모드를 확인 후, cemSEQM_SKIP_RUN 모드로 설정합니다. if cemCfgSeqMode_Get ( @nSeqMode ) = ceERR_NONE then begin if nSeqMode <> cemSEQM_SKIP_RUN then begin cemCfgSeqMode_Get ( cemSEQM_SKIP_RUN ); end; end; end; procedure OnMove (); begin SxVMoveStart ( cemX1 ); ‘ 속도 이송 명령 수행 if SxMoveStart ( cemX1, 100000 ) <> ceERR_NONE then begin { -5170 에러 코드 반환 시퀀스 모드가 cemSEQM_SKIP_RUN 모드로 설정되어 있으므로 이송 명령이 완료되지 않은 상태에서 다른 이송 명령은 실행되지 않습니다. } end; end;